package com.chengfei.service;

import com.chengfei.pojo.Blog;
import com.chengfei.vo.RecommendBlog;
import com.chengfei.vo.SearchBlog;

import java.util.List;
import java.util.Map;


public interface BlogService {

    /**
     * 保存博客
     * @param blog
     * @return
     */
    int saveBlog(Blog blog);

    /**
     * 根据博客id查询博客信息
     * @param id
     * @return
     */
    Blog getBlogById(Long id);

    /**
     * 根据博客id删除博客信息
     * @param id
     * @return
     */
    int deleteBlog(Long id);

    /**
     * 更新博客
     * @param blog
     * @return
     */
    int updateBlog(Blog blog);

    /**
     * 根据条件查询博客
     * @param searchBlog
     * @return
     */
    List<Blog> listBlog(SearchBlog searchBlog);

    /**
     * 查询博客数量
     * @return
     */
    int getBlogCount();

    /**
     * 根据类型id删除博客
     * @param id
     * @return
     */
    int deleteBlogByTypeId(Long id);

    /**
     * 查询博客发布数量
     * @return
     */
    int getBlogIssueCount();

    /**
     * 查询所有发布的博客
     * @return
     */
    List<Blog> listIssueBlog();

    /**
     * 查询推荐博客
     * @return
     */
    List<RecommendBlog> listRecommendBlog();

    /**
     * 根据标题或内容,模糊查询
     * @param query
     * @return
     */
    List<Blog> query(String query);

    /**
     * 根据类型id查询博客
     * @param id
     * @return
     */
    List<Blog> queryBlogByTypeId(Long id);

    /**
     * 根据博客id查询博客
     * @param id
     * @return
     */
    Blog getBlogAndConvert(Long id);

    /**
     * 查询博客归档信息
     * @return
     */
    Map<String,List<Blog>> getBlogArchives();
}
